/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import dominio.Cancion;

import java.util.ArrayList;
import java.util.List;
import persistencia.*;

/**
 *
 * @author VWV
 */
public class Main {

    private static List<Cancion> cancionesPorEnviar = null;

//    descomenten la linea de abajo para escribir en xml
//    private static IPersistencia persistencia = new ManejoXml();


//    descomenten la linea de abajo para escribir en texto plano
    private static IPersistencia persistencia = new ManejoTexto();

//      descomenten la linea de abajo para escribir en stream(binario)
//    private static IPersistencia persistencia = new ManejoStream();
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        //Comenten ustedes las lineas segun las operaciones que deseen probar
        //Recuerden no usar el STATIC a la ligera, esto puede traer problemas
        //En esta caso se usa solo por que la clase Main para este ejemplo es
        //static

        //si quieren solo ver como se lee y mostrarlo por pantalla, usen
        //leer(), imprimir canciones()

        //si quieren crear una lista nueva de canciones y escribirla en un xml
        //usen crearNuevasCanciones(), imprimirCanciones(), escribir()

        //todos los archivos guardados y generados se encuentran en la carpeta archivos
        //del proyecto de netbeans

        leer();
//        crearNuevasCanciones();
        imprimirCanciones();
        escribir();



    }

    private static void leer() {
        cancionesPorEnviar = persistencia.leerCanciones();
    }

    private static void imprimirCanciones() {
        if (cancionesPorEnviar != null) {
            for (Cancion cancion : cancionesPorEnviar) {
                System.out.println(cancion);
            }
        } else {
            System.out.println("No hay canciones para mostrar");
        }
    }

    private static void crearNuevasCanciones() {
        cancionesPorEnviar = new ArrayList<Cancion>();
        cancionesPorEnviar.add(new Cancion("cancion_1", "artista_1", "url_1.au"));
        cancionesPorEnviar.add(new Cancion("cancion_2", "artista_2", "url_2.au"));
        cancionesPorEnviar.add(new Cancion("cancion_3", "artista_3", "url_3.au"));
    }

    private static void escribir() {
        if (cancionesPorEnviar != null) {
            persistencia.escribirCanciones(cancionesPorEnviar);
        } else {
            System.out.println("No se puede persistir una lista vacia");
        }
    }
}
